package com.leetcode;

/**
 * 输入: "III"
 * 输出: 3
 * <p>
 * 输入: "IX"
 * 输出: 9
 * <p>
 * 使用循环，如果下一位大于当前的 那就说明当前的数字为负数
 */
public class 罗马数字转整数 {

    public static void main(String[] args) {
        System.out.println(RomaToInt("IX"));
    }

    public static int RomaToInt(String roma) {
        int length = roma.length();
        int num = 0;
        for (int i = 0; i < length; i++) {
            int value = 0;
            if (i == length - 1) {
                value = getValue(roma.charAt(i));
            } else {
                value = (getValue(roma.charAt(i + 1)) > getValue(roma.charAt(i))) ? -getValue(roma.charAt(i)) : getValue(roma.charAt(i));
            }
            num += value;
        }
        return num;
    }

    public static int getValue(char c) {
        int value = 0;
        switch (c) {
            case 'I':
                value = 1;
                break;
            case 'V':
                value = 5;
                break;
            case 'X':
                value = 10;
                break;
            case 'L':
                value = 50;
                break;
            case 'C':
                value = 100;
                break;
            case 'D':
                value = 500;
                break;
            case 'M':
                value = 1000;
                break;
            default:
                break;
        }
        return value;
    }

}
